package com.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog.common.Result.PageResult;
import com.blog.dto.ArticleAddDto;
import com.blog.dto.ArticleUpdateDto;
import com.blog.entity.Article;
import com.blog.vo.ArticleGetByDateVo;

import java.io.IOException;
import java.util.List;

public interface IArticleService extends IService<Article> {
    /**
     * 根据日期获取文章列表
     * @return
     */
    List<ArticleGetByDateVo> getListByDate();

    /**
     * 添加文章
     * @param articleAddDto
     */
    void addArticle(ArticleAddDto articleAddDto);

    /**
     * 删除文章
     * @param id
     */
    void deleteArticle(Long id) throws IOException;

    /**
     * 修改文章
     * @param articleUpdateDto
     */
    void updateArticle(ArticleUpdateDto articleUpdateDto) throws IOException;


    /**
     * 根据用户id获取文章列表
     * @param userId
     * @return
     */
    PageResult getArticlesByUserId(Long userId, Integer pageNum, Integer pageSize);

    /**
     * 根据标题获取文章
     * @param name
     * @return
     */
    PageResult getArticleByTitle(String name, Integer pageNum, Integer pageSize) throws IOException;
}
